import java.util.*;


public class StatusFinder {
	
	/*on stocke les different motif au cours du jeu dans cette liste
	 * 
	 * 
	 */
	public Deque<LinkedList<Pair>> deque;
	
	
	@SuppressWarnings("rawtypes")
	public StatusFinder(){
		
		deque =new LinkedList<LinkedList<Pair>>();
		
		
		
	}
	
	
	public void add(LinkedList<Pair> unstatus){
		deque.add(unstatus);
		
		
		
		
	}
	/*
	 * retourne l'etat du jeu
	 * si un motif apparait 2 fois alors -> oscillation
	 * 
	 * à refaire enfin l'idée est la
	 * 
	 * 
	 * 
	 */
	
	public String status(){
		if(deque.getLast().isEmpty())
		 return new String("Mort");
		else {
			Iterator<LinkedList<Pair>> it = deque.iterator();
			Map<LinkedList<Pair>,Integer> map = new HashMap<LinkedList<Pair>,Integer>();
			while(it.hasNext()){// On compte le nombre de chaque motif
				LinkedList<Pair> list = it.next();
				map.put(list, (map.containsKey(list)?map.get(list)+1:0));
				
				
				
				
				
				
				
			}
			Set<LinkedList<Pair>> set = map.keySet();
			Iterator it2 =set.iterator();
			LinkedList<Pair> ancien = null;
			
			while(it2.hasNext()){
				LinkedList<Pair> nouveau = (LinkedList<Pair>) it2.next();
				if(map.get(nouveau)>=2) 
				{
					if(nouveau.equals(ancien))
						return "Stable";
					else
					return "Oscillation";
			
				
				}
				
				ancien=nouveau;
			}
			
			
			
			
			
			System.out.println(map);
			
			return new String("v");
			
			
		}
		
		
		
	}
	
	
	

}
